package com.sky.zero.utils;

import java.math.BigDecimal;

import static com.sky.zero.utils.AmountUtil.Opt.*;

public class AmountUtil {

    public static boolean compare(BigDecimal v1, Opt opt, BigDecimal v2) {
        if (GT.equals(opt)) {
            return v1.compareTo(v2) > 0;
        }
        if (LT.equals(opt)) {
            return v1.compareTo(v2) < 0;
        }
        if (EQ.equals(opt)) {
            return v1.compareTo(v2) == 0;
        }
        if (GTEQ.equals(opt)) {
            return v1.compareTo(v2) >= 0;
        }
        if (LTEQ.equals(opt)) {
            return v1.compareTo(v2) <= 0;
        }
        return false;
    }

    public static boolean gt(BigDecimal v1, BigDecimal v2) {
        return compare(v1, GT, v2);
    }

    public static boolean lt(BigDecimal v1, BigDecimal v2) {
        return compare(v1, LT, v2);
    }

    public static boolean eq(BigDecimal v1, BigDecimal v2) {
        return compare(v1, EQ, v2);
    }

    public static boolean gteq(BigDecimal v1, BigDecimal v2) {
        return compare(v1, GTEQ, v2);
    }

    public static boolean lteq(BigDecimal v1, BigDecimal v2) {
        return compare(v1, LTEQ, v2);
    }

    public enum Opt {
        GT,//大于
        LT,//小于
        EQ,//等于
        GTEQ,//大于等于
        LTEQ,//小于等于
    }

    public static void main(String[] args) {
        BigDecimal v1 = BigDecimal.valueOf(1);
        BigDecimal v2 = BigDecimal.valueOf(2);

        System.out.println("V1>V2 " + compare(v1, GT, v2));
        System.out.println("V1<V2 " + compare(v1, LT, v2));
        System.out.println("V1=V2 " + compare(v1, EQ, v2));
        System.out.println("V1>=V2 " + compare(v1, GTEQ, v2));
        System.out.println("V1<=V2 " + compare(v1, LTEQ, v2));
    }
}
